配置 config.properties
時需注意 http 相關的設定 :
http-server.https.enabled=true
http-server.https.port=8443
http-server.https.keystore.path=/etc/trino/certs/keystore.jks
http-server.https.keystore.key=password
web-ui.enabled=true
http-server.authentication.type=PASSWORD
password-authenticator.properties
password.db
# password-authenticator.properties
password-authenticator.name=file
file.password-file=/etc/trino/password.db
# password.db
# 使用以下指令新增帳密至 password.db
## 通常 Local 設定帳密一樣
htpasswd -B -C 10 local/init/trino/coordinator/password.db <user_name>
配置文件的參數百百種,這邊僅介紹能啟動 toy example 最小的部分,其餘的後續篇章會接續討論,文件配置完成後即可啟動我們的 Trino :
## Create directory for certs
mkdir ./local/init/trino/certs/
## Generate key and create Keystore
keytool -genkeypair -alias trino -keyalg RSA -keystore ./local/init/trino/certs/keystore.jks \
-dname "CN=coordinator, OU=datalake, O=dataco, L=Sydney, ST=NSW, C=AU" \
-ext san=dns:coordinator,dns:coordinator.presto,\
dns:coordinator.presto.svc,dns:coordinator.presto.svc.cluster.local,\
dns:coordinator-headless,dns:coordinator-headless.presto,\
dns:coordinator-headless.presto.svc,dns:coordinator-headless.presto.svc.cluster.local,
dns:localhost,dns:trino-proxy,ip:127.0.0.1,ip:192.168.64.5,ip:192.168.64.6 \
-storepass password
## Export liscence from Keystore
keytool -exportcert -file ./local/init/trino/certs/trino.cer\
-alias trino -keystore ./local/init/trino/certs/keystore.jks\
-storepass password
## Import liscence to Truststore
keytool -import -v -trustcacerts\
-alias trino_trust -file ./local/init/trino/certs/trino.cer\
-keystore ./local/init/trino/certs/truststore.jks\
-storepass password -keypass password -noprompt
## Check liscence in Keystore
keytool -keystore ./local/init/trino/certs/keystore.jks -exportcert\
-alias trino -storepass password| openssl x509 -inform der -text
## Transform JKS Keystore to PKCS12
keytool -importkeystore -srckeystore ./local/init/trino/certs/keystore.jks\
-destkeystore ./local/init/trino/certs/trino.p12\
-srcstoretype jks -deststoretype pkcs12 -srcstorepass password\
-deststorepass password
## Transform PKCS12 Keystore to PEM
openssl pkcs12 -in ./local/init/trino/certs/trino.p12\
-out ./local/init/trino/certs/trino.pem\
-passin pass:password -passout pass:password
## Transform DER Keystore to CRT
openssl x509 -in ./local/init/trino/certs/trino.cer -inform DER\
-out ./local/init/trino/certs/trino.crt
然後即可執行 make file 啟動指令 : make start profiles=trino
啟動後可以用 docker ps
指令檢查容器狀態,若 coordinator
與 worker
皆顯示 healthy
(如下圖) 則恭喜你成功啟動人生中第一座 Trino
password.db
的設定值登入 :系列文明日《Trino 地端架設與調參 (三)》將帶你解鎖「查詢續命術」——深入 Fault-tolerant 機制,聊聊查詢怎麼在 worker 掛掉後原地滿血復活,並用 S3 當急救包,讓失敗任務秒速回魂。
My Linkedin: https://www.linkedin.com/in/benny0624/
My Medium: https://hndsmhsu.medium.com/